enumerate and zip

let a = ['a', 'b', 'c'];
let iter = a.iter().enumerate();
assert_eq!(iter.next(), Some((0usize, &'a')));
assert_eq!(iter.next(), Some((1usize, &'b')));
assert_eq!(iter.next(), Some((2usize, &'c')));
assert_eq!(iter.next(), None);
let a = ['a', 'b', 'c'];
let iter = a.iter().zip(0i32..); // lazy evaluation의 위대함
assert_eq!(iter.next(), Some((&'a', 0i32))); // 순서 유의!!
assert_eq!(iter.next(), Some((&'b', 1i32)));
assert_eq!(iter.next(), Some((&'c', 2i32)));
assert_eq!(iter.next(), None);